#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define OFFSETOF(type,mem) ((int*)&(((type*)0)->mem))
struct S
{
	char c1;
	int a;
	char c2;
};
int main()
{
	printf("%d\n", OFFSETOF(struct S, c1));
	printf("%d\n", OFFSETOF(struct S, a));
	printf("%d\n", OFFSETOF(struct S, c2));
	return 0;
}

#include <stdio.h>

#define SWAP(n) n=(((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))
int main()
{
	int a = 5;
	SWAP(a);
	printf("%d", a);
	return 0;
}